package com.ruoyi.mongo.util;

import com.mongodb.client.MongoCollection;
import com.ruoyi.mongo.souce.MongoDB04AuthPoolUtil;
import com.ruoyi.util.DateUtil;

import org.bson.Document;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * @Description: 添加文档
 * @ClassName: MongoTest01Insert
 * @author syc
 * @date: 2022年5月25日 上午11:34:55
 */
public class MongoTest01Insert {
	/**
	 * @Description:测试 
	 * @author syc
	 * @date: 2022年5月25日 上午10:54:42
	 */
    public static void main(String[] args) {
        MongoTest01Insert docu = new MongoTest01Insert();
        // docu.insertSingleDocument();
        // docu.insertManyDocumnet();
        // docu.insertDocumentSystemDate();
         docu.insertDocumentCustoDate();
    }
    /**
     * @Description:  添加单个文档
     * @author syc
     * @date: 2022年5月25日 上午10:54:02
     */
    public void insertSingleDocument() {
        // 获取集合
        MongoCollection<Document> collection = MongoDB04AuthPoolUtil.getCollection("test", "test_user");
        // {} -->Document
        // append(String key,object value) --> {key:value}
        Document docu = new Document();
        docu.append("name","王天河").append("age",26).append("sex","男").append("hobbys", Arrays.asList(new String[]{"吃饭","睡觉"}));
        collection.insertOne(docu);
    }

    /**
     * 	文档的批量添加
     */
     public void insertManyDocumnet() {
         // 获取集合
         MongoCollection<Document> collection = MongoDB04AuthPoolUtil.getCollection("test", "test_user");
         List<Document> list = new ArrayList<>();
         for (int i=0;i<2;i++){
             Document docu = new Document();
             docu.append("name","卫何民"+i);
             docu.append("age",20+i);
             docu.append("sex","男");
             docu.append("hobbys",Arrays.asList(new String[]{"吃饭","睡觉"}));
             list.add(docu);
         }
         collection.insertMany(list);
     }
     
     
     /**
      * @Description: 插入系统当前日期
      * @author syc
      * @date: 2022年5月25日 下午7:57:17
      */
     public void insertDocumentSystemDate(){
         MongoCollection<Document> collection = MongoDB04AuthPoolUtil.getCollection("test", "test_user");
         Document docu = new Document();
         docu.append("name","王东");
         docu.append("age",20);
         docu.append("sex","男");
         docu.append("hobbys",Arrays.asList(new String[]{"吃饭","睡觉"}));
         docu.put("create_time",new Date());
         collection.insertOne(docu);
     }

     /**
      * @Description: 插入指定日期
      * @author syc
      * @date: 2022年5月25日 下午7:58:26
      */
     public void insertDocumentCustoDate(){
         MongoCollection<Document> collection = MongoDB04AuthPoolUtil.getCollection("test", "test_user");
         Date date = DateUtil.stringToDate("yyyy-MM-dd HH:mm:ss","2019-05-01 13:32:13");
         Document docu = new Document();
         docu.append("name","刘北");
         docu.append("age",20);
         docu.append("sex","男");
         docu.append("hobbys",Arrays.asList(new String[]{"吃饭","睡觉"}));
         docu.put("create_time", date);
         collection.insertOne(docu);
     }
     
     
     
     
}
